<?php

namespace app\rest\controller;

use think\Controller;
use think\Db;
use think\Request;
use app\rest\model\User as UserModel;

class User extends Controller
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
//        return '用户列表';
        $list = Db::table('hc_user')->field(['id', 'name'])->order('id', 'ASC')->select();
//        var_dump($list);

        return view('user/index', [
            'title' => '用户列表',
            'list' => $list
        ]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
//        return '添加用户';
        return view('create', [
            'title' => '添加用户'
        ]);
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
//        var_dump($request);

        // 接收POST值
        $p = $request->post();
//        var_dump($_POST); // NO
//        $p = Request::instance()->post();
//        $p = input('post.');
//        var_dump($p);

//        // 手动过滤
//        $data = [
//            'name' => $p['name'],
//            'pass' => md5($p['pass']),
//            'sex' => $p['sex'],
//            'age' => $p['age'],
//            'province' => $p['province'],
//            'tel' => $p['tel']
//        ];
//
//        // 执行新增
//        $result = Db::table('hc_user')->data($data)->insert();

        // 模型
        $user = new UserModel();
//        var_dump($user);

        $user->data($p); // 传入POST数据
        $user->pass = md5($p['pass']);
        // 返回受影响行数
        $result = $user->allowField(true)->save();
        echo $user->id;

//        var_dump($user);
//exit;
        if ($result > 0) {
            return $this->success('安排上了! ヾ(=ﾟ･ﾟ=)ﾉ喵♪', url('rest/user/index'));
        } else {
            return $this->error('还没安排上. (ノ°ο°)ノ高能预警 ');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function read($id)
    {
        // 是否为 Ajax 请求
        if (!Request::instance()->isAjax()) {
            return $this->error('你四不四迷路了?', '/');
        }
//        return '读取用户ID: ' . $id;
        // 显式查询所有字段
        $result = Db::table('hc_user')->field('pass', true)->find($id);
//        var_dump($result);
        if ($result === null) {
            $info['status'] = false;
            $info['title'] = '查无数据';
            $info['datas'] = '查无数据,请重试';
        } else {
            $info['status'] = true;
            $info['title'] = $result['name'];
            $info['datas'] = $result;
        }
        return json($info);
    }

    /**
     * 显示指定的资源(页面)
     *
     * @param  int $id
     * @return \think\Response
     */
    public function readpage($id)
    {
        // 显式查询所有字段
        $row = Db::table('hc_user')->field('pass', true)->find($id);

        return view('user/show', [
            'title' => $row['name'] . '的详细信息',
            'row' => $row
        ]);
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int $id
     * @return \think\Response
     */
    public function edit($id)
    {
//        return '编辑用户ID:' . $id;
        // 显式查询所有字段
        $result = Db::table('hc_user')->field('pass', true)->find($id);
        return view('edit', [
            'title' => '编辑用户',
            'data' => $result
        ]);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request $request
     * @param  int $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        $info = $request->put();
        var_dump($info);


        $data = [
            'name' => $info['name'],
            'sex' => $info['sex'],
            'age' => $info['age'],
            'province' => $info['province'],
            'tel' => $info['tel']
        ];

        $result = Db::table('hc_user')->where('id', $id)->update($data);

        if ($result > 0) {
            return $this->success('编辑安排上了! ヾ(=ﾟ･ﾟ=)ﾉ喵♪', url('rest/user/index'));
        } else {
            return $this->error('还没安排编辑上. (ノ°ο°)ノ高能预警 ');
        }

    }

    /**
     * 删除指定资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $result = Db::table('hc_user')->delete($id);
        if ($result > 0) {
            $info['status'] = true;
            $info['id'] = $id;
            $info['info'] = 'ID为: ' . $id . ' 用户删除成功!';
        } else {
            $info['status'] = false;
            $info['id'] = $id;
            $info['info'] = 'ID为: ' . $id . ' 用户删除失败,请重试!';
        }
        return json($info); // JSON 数据
    }
}
